package org.contato.controller;

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.contato.entity.Usuario;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;

@ManagedBean
@SessionScoped
@SuppressWarnings("serial")
public class UsuarioSessionController implements Serializable {

	private Usuario usuario;

    public UsuarioSessionController() {
        SecurityContext context = SecurityContextHolder.getContext();
        if (context instanceof SecurityContext){
            Authentication authentication = context.getAuthentication();
            if (authentication instanceof Authentication){
            	Object obj = authentication.getPrincipal();
            	if (obj instanceof Usuario) {
                    usuario = (Usuario) authentication.getPrincipal();
            	} else {
            		usuario = new Usuario();
            	}
            }
        }
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
    
}